﻿#pragma warning(disable: 4996)
#pragma warning(disable: 6031)

/*
对给定的字符串，本题要求你输出最长对称子串的长度。例如，给定Is PAT&TAP symmetric?，最长对称子串为s PAT&TAP s，于是你应该输出11。

输入格式：
输入在一行中给出长度不超过1000的非空字符串。

输出格式：
在一行中输出最长对称子串的长度。

输入样例：
Is PAT&TAP symmetric?
输出样例：
11
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char buf[1024];

int symmetric(char a[], int s, int e)
{
	int m = s + (e - s) / 2;
	for (int i = s,j=e; i <= m; ++i,--j)
	{
		if (a[i] != a[j])
			return -1;
	}
	return e - s + 1;
}

void solve()
{
	int n = 0;
	int m = 1;
	gets(buf);
	n = strlen(buf);
	for (int i = 0; i < n; ++i)
	{
		for (int j = i + m; j < n; ++j)
		{
			int v = symmetric(buf, i, j);
			if (v > m)
				m = v;
		}
	}
	printf("%d\n", m);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-64.txt", "r", stdin);
	solve();
	return 0;
}

//freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-50.txt", "r", stdin);
